package com.maker.generator.entity;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

import com.dwork.base.validate.groups.ADD;
import com.dwork.base.validate.groups.DEFAULT;




/**
 * 元对象
 * @author rainbow
 *
 */
public class MetaGenObj implements Serializable{

	private static final long serialVersionUID = -4581736196333520254L;
	
	private Long id;
	/**
	 * 元对象名称
	 */
	@NotEmpty(message="{metaGenObj.objName.notempty}", groups={DEFAULT.class,ADD.class})
	@Length(min=2, max=50,message="{metaGenObj.objName.length}", groups={DEFAULT.class,ADD.class})
	private String objName;
	/**
	 * 元对象备注
	 */
	private String objComment;
	/**
	 * 元对象的包路名
	 */
	private String objPackageName;
	/**
	 * 类的全名。即包含路径的全名。
	 */
	private String objTypeName;
	
	/**
	 * 元对象的属性列表
	 */
	private List<MetaGenAttr> metaAttrs;
	/**
	 * 配置
	 */
	private MetaGenConfig config;
	
	
	/**
	 * 不纳入映射的配置项
	 */
	private Map<String,Object> options;

	

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getObjName() {
		return objName;
	}

	public void setObjName(String objName) {
		this.objName = objName;
	}

	public String getObjComment() {
		return objComment;
	}

	public void setObjComment(String objComment) {
		this.objComment = objComment;
	}

	public String getObjPackageName() {
		return objPackageName;
	}

	public void setObjPackageName(String objPackageName) {
		this.objPackageName = objPackageName;
	}

	public List<MetaGenAttr> getMetaAttrs() {
		return metaAttrs;
	}

	public void setMetaAttrs(List<MetaGenAttr> metaAttrs) {
		this.metaAttrs = metaAttrs;
	}

	public MetaGenConfig getConfig() {
		return config;
	}

	public void setConfig(MetaGenConfig config) {
		this.config = config;
	}

	public Map<String, Object> getOptions() {
		return options;
	}

	public void setOptions(Map<String, Object> options) {
		this.options = options;
	}

	public String getObjTypeName() {
		return objTypeName;
	}

	public void setObjTypeName(String objTypeName) {
		this.objTypeName = objTypeName;
	}
	
	
	

}
